package com.qf.controller;

import com.qf.pojo.Customer;
import com.qf.service.CacheService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 请求缓存
 * @author lixu
 */
@RestController
@RequestMapping("/cache")
public class CacheController {

    @Autowired
    private CacheService cacheService;

    /**
     * 测试
     */
    @GetMapping("/list/{id}")
    public Customer list(@PathVariable String id){
        //1:调用 Service  Service层发出远程调用
        Customer customer = cacheService.findCustomerById(id);
        System.out.println("第一次调用完成");
        //2:调用 Service  Service层由于发现  包名 + 类名 + 方法 + 形参  不远程调用的
        Customer customer2 = cacheService.findCustomerById(id);
        System.out.println("第二次调用完成");
        //3:调用 Service  Service层由于发现  包名 + 类名 + 方法 + 形参  不远程调用的
        Customer customer3 = cacheService.findCustomerById(id);
        System.out.println("第三次调用完成");
        //不想查询请求缓存  想远程调用
        //清理断路器的请求缓存
        cacheService.removeCache(id);
        //4:调用 Service  Service层由于发现  包名 + 类名 + 方法 + 形参  不远程调用的
        Customer customer4 = cacheService.findCustomerById(id);
        System.out.println("第四次调用完成");

        //返回值
        return customer;
    }
}
